package day01;

public class Fibonacci {
    public static void main(String[] args) {
//        for (int i = 1; i <=30 ; i++) {
//            System.out.println(fn(i)+" ");
//        }
        for (int i = 1; i <=100 ; i++) {
            System.out.println(fn2(i)+" ");
        }

        int sum =0;
        for (int i = 1; i <=100 ; i++) {
            sum+=i;
        }
        System.out.println(sum);
    }


    /*i     计算  返回
    * i=1   1
    *i=2    1+2=    3
    *i=3    3+3=    6
    * */
    //第一次调用自身是1
    //第2次调用 自身 + 上一次的自己

    //递归实现 1-100 的和
    public static int fn2(int  n){
        if(n==1){
            return 1;
        }
        return fn2(n-1)+n;
    }

    //定义一个方法用于求出某位上的值
    //在一个方法体内部调用该方法本身,就是递归思想
    //递归: 是一种思想,应用在代码上体现为调用方法本身

    public static int  fn(int n) {
        //如果 取的是第一位和第二位的值 返回1
        if(n==1||n==2){
            return 1;
        }
        //取的是后面位数的值 则返回  上一个和上上一个的和
        return fn(n-1)+fn(n-2);

    }



}
